Warning: This dashboard contains the results of a predictive model that was not built by an epidemiologist.

Note: Click a country name to open a search results page for that country’s COVID-19 news.

Based on data up to: 2022-03-18

/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/jupyter_client/session.py:716: UserWarning:

Message serialization failed with:
Out of range float values are not JSON compliant
Supporting this message is deprecated in jupyter-client 7, please make sure your message is JSON-compliant

World map (interactive)

Hover mouse over map for detailed information.

Tip: Select columns to show on map to from the dropdown menus. The map is zoomable and draggable.

Tables

Projected need for ICU beds

Countries sorted by current estimated need, split into Growing and Recovering countries by current transmission rate. Only for countries with ICU need higher than 0.1 beds per 100k. More details in Appendix.

Growing countries (transmission rate above 5%)

  Estimated
current
ICU need
per 100k
population
Estimated
daily
transmission
rate
Projected
ICU need
per 100k
In 14 days
Projected
ICU need
per 100k
In 30 days
Pre-COVID
ICU
capacity
per 100k
🇮🇸 Iceland 35.28 7.8% ± 1.4% 29.3 ± 2.5 21.6 ± 3.3 9.1
🇰🇷 South Korea 30.53 10.6% ± 2.5% 44.4 ± 10.8 52.4 ± 16.2 10.6
🇦🇹 Austria 30.49 10.5% ± 2.0% 32.9 ± 4.5 31.9 ± 7.4 21.8
🇱🇻 Latvia 27.65 7.1% ± 2.2% 21.2 ± 2.7 14.8 ± 3.7 9.7
🇳🇱 Netherlands 24.22 8.6% ± 0.7% 21.2 ± 0.9 17.1 ± 1.4 6.4
🇨🇭 Switzerland 20.62 10.2% ± 1.6% 21.8 ± 2.4 21.5 ± 4.4 11.0
🇩🇪 Germany 20.51 8.9% ± 1.1% 23.8 ± 2.5 26.6 ± 5.3 29.2
🇳🇿 New Zealand 18.55 noisy data noisy data noisy data -
🇬🇷 Greece 16.38 9.6% ± 0.5% 18.2 ± 0.8 19.7 ± 1.7 6.0
🇱🇹 Lithuania 15.49 7.9% ± 2.2% 13.5 ± 2.1 11.1 ± 3.5 15.5
🇸🇰 Slovakia 13.60 10.0% ± 3.0% 11.2 ± 1.6 8.5 ± 2.4 9.2
🇵🇹 Portugal 11.39 6.3% ± 0.7% 9.5 ± 0.6 7.4 ± 0.9 4.2
🇸🇮 Slovenia 11.12 10.6% ± 4.0% 9.9 ± 2.1 8.4 ± 3.6 6.4
🇨🇾 Cyprus 11.07 8.8% ± 1.3% 12.5 ± 1.5 13.6 ± 3.1 -
🇫🇷 France 10.39 10.2% ± 3.9% 9.9 ± 2.4 9.1 ± 4.5 11.6
🇫🇮 Finland 10.07 5.2% ± 2.3% 9.3 ± 2.5 noisy data 6.1
🇮🇹 Italy 8.89 8.9% ± 2.6% 9.5 ± 2.1 10.0 ± 4.7 12.5
🇱🇺 Luxembourg 7.97 9.7% ± 2.7% 8.9 ± 2.0 9.8 ± 4.4 24.8
🇬🇪 Georgia 7.84 7.1% ± 2.9% 4.5 ± 0.2 2.2 ± 0.2 -
🇦🇺 Australia 7.80 7.9% ± 1.6% 9.6 ± 1.8 11.8 ± 4.4 9.1
🇻🇳 Vietnam 7.04 6.7% ± 1.7% 7.1 ± 1.3 7.0 ± 2.5 -
🇬🇧 United Kingdom 6.98 12.0% ± 2.7% 8.0 ± 1.5 9.1 ± 3.3 6.6
🇨🇿 Czechia 6.36 7.7% ± 2.0% 5.1 ± 0.6 3.8 ± 1.0 11.6
🇧🇪 Belgium 6.17 noisy data 5.4 ± 1.8 noisy data 15.9
🇹🇹 Trinidad and Tobago 5.73 8.6% ± 3.2% 4.0 ± 0.5 2.5 ± 0.6 -
🇧🇬 Bulgaria 5.45 11.4% ± 2.0% 4.0 ± 0.3 2.7 ± 0.4 -
🇨🇱 Chile 4.68 5.9% ± 1.1% 3.5 ± 0.3 2.5 ± 0.4 -
🇭🇷 Croatia 4.21 noisy data 3.3 ± 0.8 noisy data -
🇪🇸 Spain 4.01 5.3% ± 2.0% 3.1 ± 0.5 2.3 ± 0.8 9.7
🇮🇪 Ireland 3.95 noisy data 3.3 ± 1.4 noisy data 6.5
🇲🇰 North Macedonia 3.48 21.0% ± 7.1% 2.5 ± 0.3 1.6 ± 0.4 -
🇲🇹 Malta 2.67 8.9% ± 2.3% 3.4 ± 0.8 noisy data -
🇧🇦 Bosnia 2.63 5.7% ± 1.4% 1.7 ± 0.1 1.0 ± 0.1 -
🇲🇾 Malaysia 2.12 6.9% ± 0.6% 1.9 ± 0.1 1.6 ± 0.2 3.4
🇲🇪 Montenegro 1.66 8.4% ± 1.8% 1.1 ± 0.1 0.7 ± 0.1 -
🇧🇭 Bahrain 1.51 6.6% ± 1.2% 1.1 ± 0.1 0.7 ± 0.1 -
🇧🇷 Brazil 1.46 62.1% ± 19.4% 1.1 ± 0.1 0.7 ± 0.2 -
🇹🇭 Thailand 1.42 5.6% ± 0.6% 1.4 ± 0.1 1.5 ± 0.2 10.4
🇧🇹 Bhutan 1.34 8.7% ± 2.4% 2.1 ± 0.7 noisy data -
🇵🇾 Paraguay 1.21 39.4% ± 6.8% 0.7 ± 0.0 0.4 ± 0.0 -
🇲🇽 Mexico 1.03 noisy data 0.6 ± 0.1 0.4 ± 0.2 1.2
🇦🇷 Argentina 0.95 noisy data 0.7 ± 0.2 noisy data -
🇬🇹 Guatemala 0.75 7.4% ± 3.1% 0.6 ± 0.1 0.5 ± 0.2 -
🇮🇷 Iran 0.75 6.4% ± 1.2% 0.5 ± 0.0 0.3 ± 0.0 4.6
🇿🇦 South Africa 0.71 noisy data 0.7 ± 0.2 noisy data -
🇸🇷 Suriname 0.47 noisy data 0.3 ± 0.1 0.2 ± 0.1 -
🇨🇴 Colombia 0.44 9.1% ± 1.6% 0.3 ± 0.0 0.1 ± 0.0 -
🇧🇴 Bolivia 0.39 5.3% ± 1.9% 0.3 ± 0.0 0.2 ± 0.0 -
🇭🇳 Honduras 0.32 9.4% ± 3.4% 0.3 ± 0.1 0.3 ± 0.1 -
🇱🇦 Laos 0.16 noisy data noisy data noisy data 2.1

Recovering countries (tranmission rate below 5%)

  Estimated
current
ICU need
per 100k
population
Estimated
daily
transmission
rate
Projected
ICU need
per 100k
In 14 days
Projected
ICU need
per 100k
In 30 days
Pre-COVID
ICU
capacity
per 100k
🇩🇰 Denmark 21.61 4.7% ± 0.6% 14.7 ± 0.5 9.1 ± 0.7 6.7
🇪🇪 Estonia 18.19 4.5% ± 1.5% 13.2 ± 1.6 8.8 ± 2.2 14.6
🇧🇳 Brunei 11.70 4.6% ± 1.1% 9.2 ± 0.9 6.6 ± 1.3 13.1
🇸🇬 Singapore 10.42 4.5% ± 0.9% 8.8 ± 0.9 7.0 ± 1.5 11.4
🇳🇴 Norway 10.28 3.3% ± 0.6% 7.3 ± 0.4 4.8 ± 0.6 8.0
🇷🇺 Russia 5.79 2.2% ± 0.2% 3.4 ± 0.0 1.8 ± 0.0 8.3
🇮🇱 Israel 5.76 4.9% ± 0.9% 4.1 ± 0.3 2.7 ± 0.4 -
🇲🇺 Mauritius 5.58 5.0% ± 0.0% 4.6 ± 0.0 3.6 ± 0.0 -
🇯🇵 Japan 5.19 3.9% ± 0.7% 4.4 ± 0.4 3.6 ± 0.7 7.3
🇺🇾 Uruguay 4.64 4.6% ± 0.8% 3.4 ± 0.2 2.4 ± 0.3 -
🇵🇱 Poland 3.98 4.2% ± 1.1% 2.8 ± 0.2 1.8 ± 0.3 6.9
🇭🇺 Hungary 3.82 noisy data 2.4 ± 0.3 1.3 ± 0.4 13.8
🇷🇴 Romania 3.09 4.0% ± 1.0% 2.0 ± 0.1 1.2 ± 0.2 -
🇲🇩 Moldova 3.06 3.6% ± 0.8% 1.8 ± 0.1 0.9 ± 0.1 -
🇸🇪 Sweden 2.75 2.7% ± 0.8% 1.8 ± 0.1 1.0 ± 0.2 5.8
🇷🇸 Serbia 2.71 3.8% ± 0.2% 2.0 ± 0.0 1.3 ± 0.1 -
🇸🇧 Solomon Islands 2.68 noisy data 2.3 ± 0.6 noisy data -
🇺🇦 Ukraine 2.33 0.0% ± 0.0% 1.2 ± 0.0 0.5 ± 0.0 -
🇧🇾 Belarus 1.89 2.3% ± 0.7% 1.3 ± 0.1 0.8 ± 0.2 -
🇹🇷 Turkey 1.73 4.1% ± 0.4% 1.2 ± 0.0 0.7 ± 0.0 47.1
🇦🇲 Armenia 1.68 0.8% ± 0.3% 0.9 ± 0.0 0.4 ± 0.0 -
🇹🇳 Tunisia 1.40 noisy data 0.7 ± 0.0 0.3 ± 0.0 -
🇺🇸 US 1.37 4.7% ± 1.2% 0.9 ± 0.1 0.6 ± 0.1 34.7
🇨🇷 Costa Rica 1.33 4.0% ± 0.6% 0.9 ± 0.0 0.6 ± 0.1 -
🇲🇻 Maldives 1.28 0.0% ± 0.0% 0.7 ± 0.0 0.3 ± 0.0 -
🇨🇦 Canada 1.09 4.5% ± 1.7% 0.9 ± 0.2 0.7 ± 0.3 13.5
🇦🇿 Azerbaijan 0.99 0.4% ± 0.1% 0.5 ± 0.0 0.2 ± 0.0 -
🇵🇸 West Bank and Gaza 0.93 noisy data 0.5 ± 0.0 0.2 ± 0.0 -
🇱🇧 Lebanon 0.92 2.1% ± 0.2% 0.5 ± 0.0 0.3 ± 0.0 -
🇱🇾 Libya 0.80 1.3% ± 0.6% 0.4 ± 0.0 0.2 ± 0.0 -
🇱🇰 Sri Lanka 0.73 2.1% ± 0.4% 0.5 ± 0.0 0.3 ± 0.0 2.3
🇵🇦 Panama 0.61 3.4% ± 0.8% 0.4 ± 0.0 0.2 ± 0.0 -
🇪🇨 Ecuador 0.59 noisy data 0.3 ± 0.0 0.2 ± 0.0 -
🇧🇿 Belize 0.59 3.3% ± 1.2% 0.3 ± 0.0 0.2 ± 0.0 -
🇲🇳 Mongolia 0.49 2.1% ± 0.7% 0.3 ± 0.0 0.2 ± 0.0 8.8
🇮🇩 Indonesia 0.46 2.8% ± 0.5% 0.3 ± 0.0 0.2 ± 0.0 2.7
🇸🇻 El Salvador 0.40 noisy data 0.3 ± 0.1 noisy data -
🇬🇾 Guyana 0.37 noisy data 0.2 ± 0.0 0.1 ± 0.0 -
🇦🇱 Albania 0.36 1.6% ± 0.8% 0.2 ± 0.0 0.1 ± 0.0 -
🇨🇺 Cuba 0.35 4.6% ± 0.5% 0.3 ± 0.0 0.3 ± 0.0 -
🇵🇭 Philippines 0.34 0.6% ± 0.1% 0.2 ± 0.0 0.1 ± 0.0 2.2
🇰🇼 Kuwait 0.28 2.0% ± 0.4% 0.2 ± 0.0 0.1 ± 0.0 -
🇪🇬 Egypt 0.23 0.0% ± 0.0% 0.1 ± 0.0 0.1 ± 0.0 -
🇯🇲 Jamaica 0.23 1.8% ± 0.7% 0.1 ± 0.0 0.1 ± 0.0 -
🇰🇿 Kazakhstan 0.22 0.4% ± 0.1% 0.1 ± 0.0 0.1 ± 0.0 21.3
🇨🇳 China 0.21 2.4% ± 0.4% 0.1 ± 0.0 0.1 ± 0.0 3.6
🇮🇶 Iraq 0.16 3.5% ± 0.5% 0.1 ± 0.0 0.1 ± 0.0 -
🇴🇲 Oman 0.15 noisy data 0.1 ± 0.0 0.0 ± 0.0 14.6
🇫🇯 Fiji 0.14 noisy data 0.1 ± 0.0 0.1 ± 0.0 -
🇿🇼 Zimbabwe 0.14 0.9% ± 0.3% 0.1 ± 0.0 0.0 ± 0.0 -
🇳🇦 Namibia 0.14 1.6% ± 0.4% 0.1 ± 0.0 0.0 ± 0.0 -
🇶🇦 Qatar 0.11 1.5% ± 0.4% 0.1 ± 0.0 0.0 ± 0.0 -
🇧🇸 Bahamas 0.11 noisy data 0.1 ± 0.0 0.0 ± 0.0 -
🇮🇳 India 0.10 0.3% ± 0.0% 0.1 ± 0.0 0.0 ± 0.0 5.2

Appendix

Interactive plot of model predictions and past data

Tip: Choose a country from the drop-down menu to see the calculations used in the tables above and the dynamics of the model.

Projected Affected Population percentages

Top 20 countries with most estimated recent cases. Sorted by number of estimated recent cases during the last 5 days. More details in Appendix.

  Estimated
recent cases
during
last 5 days
Estimated
total
affected
population
percentage
Estimated
daily
transmission
rate
Projected
total
affected
percentage
In 14 days
Projected
total
affected
percentage
In 30 days
Current
testing
bias
🇰🇷 South Korea 1,810,388 19.7% 10.6% ± 2.5% 34.4% ± 5.1% 52.8% ± 11.7% 1.0
🇩🇪 Germany 1,115,294 28.5% 8.9% ± 1.1% 32.9% ± 0.8% 38.7% ± 2.3% 1.0
🇻🇳 Vietnam 989,674 22.0% 6.7% ± 1.7% 25.4% ± 1.2% 29.4% ± 3.2% 1.0
🇫🇷 France 426,392 53.6% 10.2% ± 3.9% 55.3% ± 0.9% 57.2% ± 2.3% 1.0
🇬🇧 United Kingdom 398,924 48.7% 12.0% ± 2.7% 50.6% ± 0.6% 53.1% ± 1.8% 1.0
🇮🇹 Italy 321,506 37.2% 8.9% ± 2.6% 38.7% ± 0.7% 40.7% ± 1.9% 1.0
🇧🇷 Brazil 280,258 95.4% 62.1% ± 19.4% 95.7% ± 0.1% 95.9% ± 0.2% 1.4
🇳🇱 Netherlands 221,578 51.9% 8.6% ± 0.7% 55.6% ± 0.4% 59.1% ± 0.9% 1.0
🇯🇵 Japan 211,104 5.2% 3.9% ± 0.7% 5.6% ± 0.1% 6.1% ± 0.3% 1.0
🇦🇺 Australia 207,575 15.6% 7.9% ± 1.6% 18.4% ± 0.9% 22.4% ± 2.7% 1.0
🇦🇹 Austria 198,865 43.9% 10.5% ± 2.0% 50.8% ± 1.8% 58.3% ± 4.1% 1.0
🇨🇳 China 172,694 0.3% 2.4% ± 0.4% 0.3% ± 0.0% 0.3% ± 0.0% 1.6
🇺🇸 US 156,959 54.0% 4.7% ± 1.2% 54.1% ± 0.0% 54.2% ± 0.1% 1.0
🇷🇺 Russia 146,829 50.0% 2.2% ± 0.2% 50.3% ± 0.0% 50.5% ± 0.0% 1.0
🇨🇭 Switzerland 127,049 44.6% 10.2% ± 1.6% 49.2% ± 1.0% 54.4% ± 2.4% 1.0
🇮🇩 Indonesia 123,258 23.8% 2.8% ± 0.5% 23.9% ± 0.0% 24.0% ± 0.0% 2.5
🇲🇾 Malaysia 106,077 42.4% 6.9% ± 0.6% 43.3% ± 0.1% 44.3% ± 0.3% 1.0
🇿🇦 South Africa 105,835 86.2% noisy data 86.7% ± 0.4% 87.2% ± 1.0% 19.9
🇹🇭 Thailand 102,276 8.3% 5.6% ± 0.6% 8.8% ± 0.1% 9.4% ± 0.2% 1.0
🇬🇷 Greece 98,191 37.9% 9.6% ± 0.5% 41.1% ± 0.3% 45.1% ± 0.7% 1.0

Methodology

  • I'm not an epidemiologist. This is an attempt to understand what's happening, and what the future looks like if current trends remain unchanged.
  • Everything is approximated and depends heavily on underlying assumptions.
  • Projection is done using a simple SIR model (see examples) combined with the approach in Total Outstanding Cases:
    • Growth rate is calculated over the 5 past days by averaging the daily growth rates.
    • Confidence bounds are calculated by from the weighted standard deviation of the growth rate over the last 5 days. Model predictions are calculated for growth rates within 1 STD of the weighted mean. The maximum and minimum values for each day are used as confidence bands.
    • Transmission rate, and its STD are calculated from growth rate and its STD using active cases estimation mentioned above.
    • For projections (into future) very noisy projections (with broad confidence bounds) are not shown in the tables.
    • Where the rate estimated from Total Outstanding Cases is too high (on down-slopes) recovery probability if 1/20 is used (equivalent 20 days to recover).
  • Total cases are estimated from the reported deaths for each country:
    • Each country has a different testing policy and capacity and cases are under-reported in some countries. Using an estimated IFR (fatality rate) we can estimate the number of cases some time ago by using the total deaths until today.
    • IFRs for each country is estimated using the age adjusted IFRs from International IFRS study and UN demographic data for 2020. These IFRs can be found in df['age_adjusted_ifr'] column.
    • The average fatality lag is assumed to be 8 days on average for a case to go from being confirmed positive (after incubation + testing lag) to death. This is the same figure used by "Estimating The Infected Population From Deaths".
    • Testing bias adjustment: the actual lagged case fatality rate is then divided by the age adjusted IFR to estimate the testing bias in a country. To account for testing bias changes (e.g. increased testing capacity) this is done on a rolling window basis of two months (with at least 300 deaths). The estimated testing bias then multiplies the reported case numbers for each date to estimate the true case numbers (=case numbers that would be consistent with the deaths and the age adjusted IFR).
  • ICU need is calculated and age-adjusted as follows:
    • UK ICU ratio was reported as 4.4% of active reported cases.
    • Using UKs ICU ratio, UK's testing bias, and IFRs corrected for age demographics we can estimate each country's ICU ratio (the number of cases requiring ICU hospitalisation).
    • Active cases for ICU estimation are taken from the SIR model.
    • Pre COVID-19 ICU capacities are from Wikipedia (OECD countries mostly) and CCB capacities in Asia. The current capacities are likely much higher as some countries already doubled or even quadrupled their ICU capacities.